home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 36
/
Aminet 36 (2000)(Schatztruhe)[!][Apr 2000].iso
/
Tools
/
Docs
/
BigAnim
next >
Wrap
Text File
|
1993-11-29
|
8KB
|
225 lines
*--------------*
| BigAnim v3.5 |
*==============*
What is BigAnim?
~~~~~~~~~~~~~~~~
BigAnim is an animation player (you guessed it!), and it's called that
because it is able to display animations that are too large to be loaded
into memory directly.
The two most important features of BigAnim are:
o BigAnim loads the animation asynchronously, 100 KByte at a time, which
means that while it displays one 100 KByte part of the animation, it is
loading the next 100 KByte simultaneously.
o If you're using Kickstart 3.0 or later, BigAnim will use the new double-
buffering routines in graphics.library. If you're not, BigAnim will take
over the display from Intuition, to increase playback speed. However, if
you flip screens, or pull down BigAnim's screen, BigAnim will detect
this, and use the old, intuition-friendly (and slow!) routines instead.
Usage
~~~~~
BigAnim can only be run from a CLI or shell, and the usage is:
BigAnim filename [LOADALL] [HIRES] [BLANK] [VERBOSE]
[BUFSIZE n] [RELTIME n] [TASKPRI n]
where "filename" should refer to an ANIM type 5 or 7 animation. ANIM
type 8 is not supported, due to its relative inefficiency compared to
ANIM type 7. For best results, type 8 animations should be converted to
type 7.
Options
~~~~~~~
LOADALL
Tells BigAnim to load the whole animation before starting playback.
Note that the animation is loaded in chunks, and the size of these
chunks can be set with the BUFSIZE keyword.
HIRES
Forces the screen resolution to Hires/Interlace. This will only work
if the original resolution was lores/nolace.
BLANK
Blanks the mouse pointer.
VERBOSE
BigAnim prints some info about the animation, such as screen size/depth,
display modes, animation type, etc.
Example: Explanation:
File: Juggler File name
Picture: 320 x 200 (48000 bytes) Picture size (width, height & bytes)
Display: 320 x 200 x 6 planes Display resolution & depth
Modes: LORES HAM View modes
AnimType: 5 Anim type: 5, 7 (short) or 7 (long)
Length: 24 frames The number of frames in the anim
Speed: 48 fps Actual playback speed (frames/second)
BufUsage: 94-99 % Buffer utilization percentage (min-max)
Note: The actual numbers for the last four lines won't be printed until
the animation has been displayed once (twice for the "Speed" and "BufUsage"
numbers), simply because that information isn't available until then.
The "BufUsage" numbers will not be printed if you're using the LOADALL switch.
BUFSIZE n
Sets the buffer size to n bytes. The default is 100 K (102400 bytes), which
means that BigAnim loads 100 K at a time.
RELTIME n
Sets the playback timing, in 1/50 seconds if you're running on a PAL
system, or 1/60 for NTSC systems.
TASKPRI n
This sets BigAnim's task priority during playback. If your hard disk
controller doesn't use DMA, the playback will probably be less jerky if
you use a high task priority. The best value for priority is generally
the same as the file system or the hard disk driver uses. Actually,
TASKPRI can be used with good results even on DMA controllers: On my
setup with an A590 and a Quantum LP240S, the playback becomes somewhat
smoother when I use TASKPRI 11.
Keys
~~~~
While the animation is being played, you can press the following keys:
ESC - Quits BigAnim (you can also use the right mouse button)
Space - Pauses the animation, or restarts if already paused
N - If paused, displays the next frame
TAB - Toggles colour cycling
Shift TAB - Turns off cycling and restores the original colour map
0-9 - Changes playback speed. By pressing one of the keys 1-9 you
can directly set the RELTIME value during playback. If you
press 0, BigAnim will use the timing information stored in
the animation.
Environment
~~~~~~~~~~~
If you want to use certain options or settings as default, you can save
them in an environment variable called BIGANIMOPTS. So, for instance, if
you always want to use a buffer size of 204800 bytes, do:
SetEnv BIGANIMOPTS BUFSIZE 204800
and BigAnim will use that instead of the built-in default of 102400 bytes.
Values for BUFSIZE, RELTIME and TASKPRI set via BIGANIMOPTS can be over-
ridden with the respective command line options. All options except LOADALL
can be used in BIGANIMOPTS.
Additional info
~~~~~~~~~~~~~~~
o BigAnim supports CMAP chunks internal to the animation, and changes the
screen colors accordingly.
o BigAnim uses the RelTime field of the ANHD chunk to decide how much
delay to put between frames. You can override this value by specifying
a new value with the RELTIME keyword, or by pressing a number key during
playback.
o BigAnim uses two sets of specially optimised decompression routines,
for processors with and without code cache.
How to choose the best buffer size
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To maximize playback speed, do this: If you have enough memory in your
Amiga to load the entire animation, use the LOADALL switch. This will
lead to the fastest possible playback. If you don't have that much
memory, you can try different buffer sizes with the BUFSIZE keyword.
Tip: If you use the VERBOSE option, BigAnim will measure the playback
speed, so you can easily see how different buffer sizes affect playback.
Also, the "BufUsage" numbers will tell you how well the buffers are
utilized during playback.
When choosing buffer size, please keep these facts in mind:
1. Due to the asynchronous nature of BigAnim's loading method, using
the largest possible buffer size may not give the fastest playback.
2. Certain combinations of file size and buffer size should be avoided.
An example: If you use a buffer size of 300 KBytes with an animation
that's 1000 KBytes long, then the first three reads will read 300 KBytes
each, but the fourth will only read 100 KBytes. This is clearly not
optimal. It would be much better to use a buffer size of 250 or 334
KBytes (or just a little bit more, to be on the safe side). So, in
cases when the last read of an animation is less than half as long as
the others, BigAnim will print a warning message: "non-optimal buffer
size".
There are two common problems often encountered while trying to find the
ideal settings:
Common problem #1: Sometimes the playback stops for a while, then continues.
Reason: Either (1) your hard disk cannot read fast enough to keep up with
the playback, (2) your hard disk doesn't have enough buffers, or (3) the hard
disk driver uses all available CPU time so the playback stops.
Solution: (1) Increase buffer size, and/or use RELTIME to slow down play-
back so the hard disk can keep up. (2) Use "AddBuffers" to add more buffers
to your hard disk. BigAnim uses the DOS "Seek" function from time to time, and
the "Seek" operation will be much faster if you have enough buffers. "Enough"
is approximately one buffer for every 36 KBytes of data in the animation file.
(3) Use TASKPRI to increase BigAnim's task priority. Usually, using the same
priority that the hard disk driver uses will give the best results.
Common problem #2: Now and then the playback slows down temporarily.
Reason: Due to hard disk transfer, the decompression can't be done at full
speed.
Solution: Use RELTIME to slow down playback. The playback will of course
be slower, but not as jerky as before.
Future additions
~~~~~~~~~~~~~~~~
I am currently working on additions to the IFF ANIM standard, so that IFF
8SVX sounds can be stored inside the animation file, and played at certain
points in the animation. Future versions of BigAnim will support this, and
possibly also loops, so that parts of an animation can be played back
repeatedly.
Disclaimer
~~~~~~~~~~
#include <std/disclaimer.h>
Distribution
~~~~~~~~~~~~
BigAnim is freely distributable, as long as BigAnim and all related files
are distributed unchanged.
Feedback
~~~~~~~~
If you want to send me suggestions, bug reports, etc, I can
be reached at:
Internet: d8sunch@dtek.chalmers.se
Snail-mail: Christer Sundin
7321 Bollestad
S-442 93 Kungälv
Sweden